<!DOCTYPE html>
<style>
    body {
        margin: 0 0 0 200px;
        padding: 10;
        border: 5px solid #00f;
        width: 800px;
    }
    .flo {
        float: right;
        background-color: #cf9;
        width: 300px;
    }
    .box {
        margin-left: -200px;
        border: 5px solid #00f;
        overflow: auto;
        height: 20px;
    }
</style>
<script src="../../../resources/check-layout.js"></script>
<body>
    <p> A box with negative margin should drop it in order to fit next to floats rather than push below the floats. It should drop the margin even when there is 
        margin available in the containing block for the box to expand into.
        The behaviour here is not defined by CSS2.1 so this behaviour is for compatibility with IE and FF. IE expands the table into the margin of the parent,
        FF does not. We match FF. Presto expanded all the boxes into parent's margin.</p>
    <div class="flo">float</div>
    <div class="box" data-expected-width=500>margin-left:-200px; overflow:auto;</div>
    <div class="flo">float</div>
    <div class="box" style="overflow: hidden" data-expected-width=500>margin-left:-200px; overflow:hidden;</div>
    <div class="flo">float</div>
    <div class="box" style="margin-left: 0" data-expected-width=500>margin-left:0; overflow:auto;</div>
    <div class="flo">float</div>
    <div class="box" style="overflow: visible" data-expected-width=1000>margin-left:-200px; overflow:visible;</div>
    <div class="flo">float</div>
    <div class="box" style="overflow: visible; display: table" data-expected-width=500>
        margin-left:-200px; display:table;
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
        blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    </div>
    <script>checkLayout('.box')</script>
</body>
